package com.cencat.user.vo;

import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import java.time.LocalDateTime;

/**
 * 角色视图对象
 * @author cencat
 * @since 2024-01-01
 */
@Data
@Schema(description = "角色视图对象")
public class RoleVO {

    @Schema(description = "角色ID", example = "1")
    private Long id;

    @Schema(description = "角色名称", example = "系统管理员")
    private String roleName;

    @Schema(description = "角色编码", example = "ADMIN")
    private String roleCode;

    @Schema(description = "角色描述", example = "系统管理员角色")
    private String description;

    @Schema(description = "角色状态（0-禁用，1-正常）", example = "1")
    private Integer status;

    @Schema(description = "角色类型（1-系统角色，2-业务角色）", example = "1")
    private Integer roleType;

    @Schema(description = "排序", example = "1")
    private Integer sortOrder;

    @Schema(description = "数据权限范围（1-全部数据，2-本部门及以下，3-本部门，4-仅本人，5-自定义）", example = "1")
    private Integer dataScope;

    @Schema(description = "数据权限部门ID集合", example = "1,2,3")
    private String dataScopeDeptIds;

    @Schema(description = "备注", example = "系统管理员角色")
    private String remark;

    @Schema(description = "租户ID", example = "1")
    private Long tenantId;

    @Schema(description = "创建时间", example = "2024-01-01T10:00:00")
    private LocalDateTime createTime;

    @Schema(description = "更新时间", example = "2024-01-01T10:00:00")
    private LocalDateTime updateTime;

    @Schema(description = "创建人ID", example = "1")
    private Long createBy;

    @Schema(description = "更新人ID", example = "1")
    private Long updateBy;
}